home *** CD-ROM | disk | FTP | other *** search
/ Chaos CD Blue / Chaos_CD_Blue__[1999].iso / contrib / security / Avoiding_bogus_encryption_products_Snake_Oil_FAQ < prev    next >
Text File  |  1999-11-21  |  32KB  |  666 lines

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!howland.erols.net!newsfeed.berkeley.edu!news.cis.ohio-state.edu!not-for-mail
  2. From: C Matthew Curtin <cmcurtin@interhack.net>
  3. Newsgroups: sci.crypt,alt.security,comp.security,comp.infosystems,comp.answers,sci.answers,alt.answers,news.answers
  4. Subject: Avoiding bogus encryption products: Snake Oil FAQ
  5. Followup-To: poster
  6. Date: 2 Nov 1999 06:44:41 GMT
  7. Organization: The Ohio State University, Computer and Information Science Dept
  8. Lines: 649
  9. Approved: news-answers-request@MIT.EDU
  10. Message-ID: <7vm18p$922$1@news.cis.ohio-state.edu>
  11. NNTP-Posting-Host: gold.cis.ohio-state.edu
  12. Summary: Identifying and avoiding weak cryptography products.
  13. X-PostedBy: pfaq
  14. X-Face: L"IcL.b%SDN]0Kql2b`e.}+i05V9fi\yX#H1+Xl)3!+n/3?5`%-SA-HDg<IT;O8XnF>Pk9uTk<3dv^J5DCgal)-E{`zN#*o6F|y>r)\<<ui53(fC)EM]42*oF|P@Hm"Z+GK%"b#q'ycf=2s5%NNR0S;8"vcNN"O;O}YpB{&^1xazqDMg^v!6LS7S"5|}2uTl$NKV5}Bkca{M|Y^cZD@{1
  15. Xref: senator-bedfellow.mit.edu sci.crypt:112750 alt.security:54092 comp.infosystems:12437 comp.answers:38298 sci.answers:10793 alt.answers:45298 news.answers:170144
  16.  
  17. URL: http://www.interhack.net/people/cmcurtin/snake-oil-faq.html
  18. Version: 1.9
  19. Archive-name: cryptography-faq/snake-oil
  20. Posting-Frequency: monthly
  21.  
  22.                           Snake Oil Warning Signs:
  23.                         Encryption Software to Avoid
  24.  
  25.                   Copyright ⌐ 1996-1998
  26.                     Matt Curtin <cmcurtin@interhack.net>
  27.  
  28.                                April 10, 1998
  29.  
  30. Contents
  31.  
  32.    * Contents
  33.    * Introduction
  34.    * Basic Concepts
  35.         o Symmetric vs. Asymmetric Cryptography
  36.         o Secrecy vs. Integrity: What are you trying to protect?
  37.         o Key Sizes
  38.         o Keys vs. Passphrases
  39.         o Implementation Environment
  40.    * Snake Oil Warning Signs
  41.         o ``Trust Us, We Know What We're Doing''
  42.         o Technobabble
  43.         o Secret Algorithms
  44.         o Revolutionary Breakthroughs
  45.         o Experienced Security Experts, Rave Reviews, and Other Useless
  46.           Certificates
  47.         o Unbreakability
  48.         o One-Time-Pads
  49.         o Algorithm or product X is insecure
  50.         o Recoverable Keys
  51.         o Exportable from the USA
  52.         o ``Military Grade''
  53.    * Other Considerations
  54.    * Glossary
  55.    * Index
  56.    * References
  57.  
  58. Administrativia
  59.  
  60. Distribution
  61.  
  62. Distribution of this document is unlimited. We're specifically trying to
  63. reach people who are not experts in cryptography or security but find
  64. themselves making decisions about what sorts of crypto (if any) to use, both
  65. for their organizations and for themselves.
  66.  
  67. The Snake Oil FAQ is posted monthly to sci.crypt, alt.security,
  68. comp.security, comp.answers, and comp.infosystems. It is available in
  69. PostScript and PDF form (ideal for printing) via the web at
  70.  
  71.  http://www.interhack.net/people/cmcurtin/snake-oil-faq.ps
  72.  http://www.interhack.net/people/cmcurtin/snake-oil-faq.pdf
  73.  
  74. and HTML at
  75.  
  76.  http://www.interhack.net/people/cmcurtin/snake-oil-faq.html
  77.  
  78. Disclaimer
  79.  
  80. All contributors' employers will no doubt disown any statements herein.
  81. We're not speaking for anyone but ourselves.
  82.  
  83. This is a compilation of common habits of snake oil vendors. It cannot be
  84. the sole method of rating a security product, since there can be exceptions
  85. to most of these rules. From time to time, a reputable vendor will produce
  86. something that is actually quite good, but will promote it with braindead
  87. marketing techniques. But if you're looking at something that exhibits
  88. several warning signs, you're probably dealing with snake oil.
  89.  
  90. Every effort has been made to produce an accurate and useful document, but
  91. the information herein is completely without warranty. This is a
  92. work-in-progress; feedback is greatly appreciated. If you find any errors or
  93. otherwise wish to contribute, please contact the document keeper, Matt
  94. Curtin <cmcurtin@interhack.net>
  95.  
  96. Document History
  97.  
  98. With the rise in the number of crypto products came a rise in the number of
  99. ineffective or outright bogus products. After some discussion about this on
  100. the cypherpunks list, Robert Rothenburg <wlkngowl@unix.asb.com> wrote the
  101. first iteration of the Snake Oil FAQ. Matt Curtin took the early text and
  102. munged it into its current state with the help of the listed contributors
  103. (and probably some others whose names have inadvertently missed. Sorry in
  104. advance, if this is the case.)
  105.  
  106. Contributors
  107.  
  108. The following folks have contributed to this FAQ.
  109. Jeremey Barrett <jeremey@forequest.com>
  110. Steven M. Bellovin <smb@research.att.com>
  111. Matt Blaze <mab@research.att.com>
  112. Bo Dvmstedt <bo.domstedt@protego.se>
  113. Gary Ellison <gfe@interhack.net>
  114. <fifersl@ibm.net>
  115. <geeman@best.com>
  116. Larry Kilgallen <KILGALLEN@Eisner.DECUS.Org>
  117. Dutra Lacerda <dutra.lacerda@mail.telepac.pt>
  118. Felix Lee <flee@teleport.com>
  119. Colin Plumb <colin@nyx.net>
  120. Jim Ray <jmr@shopmiami.com>
  121. Terry Ritter <ritter@io.com>
  122. Robert Rothenburg <wlkngowl@unix.asb.com>
  123. Adam Shostack <adam@homeport.org>
  124. Rick Smith <smith@sctc.com>
  125. Randall Williams <ac387@yfn.ysu.edu>
  126.  
  127. Introduction
  128.  
  129. Good cryptography is an excellent and necessary tool for almost anyone. Many
  130. good cryptographic products are available commercially, as shareware, or
  131. free. However, there are also extremely bad cryptographic products which not
  132. only fail to provide security, but also contribute to the many
  133. misconceptions and misunderstandings surrounding cryptography and security.
  134.  
  135. Why ``snake oil''? The term is used in many fields to denote something sold
  136. without consideration of its quality or its ability to fulfill its vendor's
  137. claims. This term originally applied to elixirs sold in traveling medicine
  138. shows. The salesmen would claim their elixir would cure just about any
  139. ailment that a potential customer could have. Listening to the claims made
  140. by some crypto vendors, ``snake oil'' is a surprisingly apt name.
  141.  
  142. Superficially, it is difficult to distinguish snake oil from the Real Thing:
  143. all encryption utilities produce garbled output. The purpose of this
  144. document is to present some simple ``red flags'' that can help you detect
  145. snake oil.
  146.  
  147. For a variety of reasons, this document does not mention specific products
  148. or algorithms as being ``good'' or ``snake oil.''
  149.  
  150. Basic Concepts
  151.  
  152. In an effort to make this FAQ more complete, some basic information is
  153. covered here. The Cryptography FAQ [3] is a more general tutorial of
  154. cryptography and should also be consulted.
  155.  
  156. When evaluating any product, be sure to understand your needs. For data
  157. security products, what are you trying to protect? Do you want a data
  158. archiver, an e-mail plug-in, or something that encrypts on-line
  159. communications? Do you need to encrypt an entire disk or just a few files?
  160.  
  161. And how secure is secure enough? Does the data need to be unreadable by
  162. ``spies'' for five minutes, one year, or 100 years? Is the spy someone's kid
  163. sister, a corporation, or a government?
  164.  
  165. Symmetric vs. Asymmetric Cryptography
  166.  
  167. There are two basic types of cryptosystems: symmetric (also known as
  168. ``conventional'' or ``secret key'') and asymmetric (``public key.'')
  169.  
  170. Symmetric ciphers require both the sender and the recipient to have the same
  171. key. This key is used by the sender to encrypt the data, and again by the
  172. recipient to decrypt the data. The problem here is getting the sender and
  173. recipient to share the key.
  174.  
  175. Asymmetric ciphers are much more flexible from a key management perspective.
  176. Each user has a pair of keys: a public key and a private key. Messages
  177. encrypted with one key can only be decrypted by the other key. The public
  178. key can be published widely while the private key is kept secret.
  179.  
  180. So if Alice wishes to send Bob some secrets, she simply finds and verifies
  181. Bob's public key, encrypts her message with it, and mails it off to Bob.
  182. When Bob gets the message, he uses his private key to decrypt it.
  183.  
  184. Verification of public keys is an important step. Failure to verify that the
  185. public key really does belong to Bob leaves open the possibility that Alice
  186. is using a key whose associated private key is in the hands of an enemy.
  187.  
  188. Asymmetric ciphers are much slower than their symmetric counterparts. Also,
  189. key sizes generally must be much larger. See the Cryptography FAQ [3] for a
  190. more detailed discussion of these topics.
  191.  
  192. Secrecy vs. Integrity: What are you trying to protect?
  193.  
  194. For many users of computer-based crypto, preserving the contents of a
  195. message is as important as protecting its secrecy. Damage caused by
  196. tampering can often be worse than damage caused by disclosure. For example,
  197. it may be disquieting to discover that a hacker has read the contents of
  198. your funds-transfer authorization, but it's a disaster for him to change the
  199. transfer destination to his own account.
  200.  
  201. Encryption by itself does not protect a message from tampering. In fact,
  202. there are several techniques for changing the contents of an encrypted
  203. message without ever figuring out the encryption key. If the integrity of
  204. your messages is important, don't rely on just secrecy to protect them.
  205. Check how the vendor protects messages from undetected modification.
  206.  
  207. Key Sizes
  208.  
  209. Even if a cipher is secure against analytical attacks, it will be vulnerable
  210. to brute-force attacks if the key is too small. In a brute-force attack, the
  211. attacker simply tries every possible key until the right one is found. How
  212. long this takes depends on the size of the key and the amount of processing
  213. power available. So when trying to secure data, you need to consider how
  214. long it must remain secure and how much computing power an attacker can use.
  215.  
  216. [1] and [2] offer some guidelines for choosing an appropriate key length.
  217. For instance, Table 1 shows the cost of breaking symmetric keys by brute
  218. force, as noted by [2]. This same report strongly recommends using symmetric
  219. keys of 90 bits or more.
  220.  
  221. With the tremendous increases in computing power over the last several
  222. decades, cryptosystems which were once considered secure are now vulnerable
  223. to brute-force attacks. RSA Laboratories sponsored a series of contests,
  224. collectively known as the 1997 Secret Key Challenge [5]. So far, we have
  225. seen RC5 up to 56 bits fall victim to brute force attacks, as well as the
  226. financial industry's workhorse, DES. At 56 bits, the keys used for DES are
  227. just too small to stand up to a dedicated attacker. It's noteworthy that
  228. both of the groups to break a DES-encrypted message did so with essentially
  229. no funding.
  230.  
  231.  
  232.                    Table 1: Time and Cost of Key Recovery
  233.  
  234.      Type of                           Time and Cost per  Length Needed for
  235.      Attacker     Budget      Tool        40-bit Key     Protection in Late
  236.                                            Recovered            1995
  237. ======================================================================
  238.                          Scavenged
  239.  Pedestrian      Tiny    Computer Time 1 Week            45
  240.  Hacker          --------------------------------------
  241.                  $400    FPGA          5 Hours ($0.08)   50
  242. ----------------------------------------------------------------------
  243.  Small business  $10,000 FPGA          12 Minutes        55
  244.                                        ($0.08)
  245. ----------------------------------------------------------------------
  246.                          FPGA          24 seconds
  247.  Corporate                             ($0.08)
  248.  Department      $300K   ------------------------------
  249.                                        .005 seconds      60
  250.                          ASIC
  251.                                        ($.001)
  252. ----------------------------------------------------------------------
  253.                          FPGA          .7 seconds
  254.  Big Company     $10M                  .0005 seconds   
  255.                          ------------------------------  70
  256.                          ASIC          ($0.001)
  257. ----------------------------------------------------------------------
  258.  Intelligence                          .0002 seconds
  259.  Agency          $300M   ASIC          ($0.001)          75
  260.  
  261. As mentioned earlier, asymmetric ciphers typically require significantly
  262. longer keys to provide the same level of security as symmetric ciphers.
  263. Comparing key lengths between algorithms is awkward because different
  264. algorithms have different characteristics. Knowing the key size is useless
  265. if you don't know what type of algorithm is being used.
  266.  
  267. But to give you some idea of what's reasonable, Table 2, from [1], compares
  268. symmetric keys against one type of asymmetric key: those based on the
  269. ``factoring problem'' or the ``discrete log problem.'' (Algorithms based on
  270. the ``elliptical curve discrete log problem'' are more resistant to
  271. brute-force attacks and can use much smaller keys. In fact, they don't have
  272. to be much larger than symmetric keys, as far as we know right now.)
  273.  
  274.  
  275.    Table 2: Key Lengths With Similar
  276.    Resistance to Brute-Force Attacks
  277.  
  278.  Symmetric Key Length Public Key Length
  279.   56 bits             384 bits
  280.   64 bits             512 bits
  281.   80 bits             768 bits
  282.  112 bits            1792 bits
  283.  128 bits            2304 bits
  284.  
  285.  
  286. Keys vs. Passphrases
  287.  
  288. A ``key'' is not the same thing as a ``passphrase'' or ``password.'' In
  289. order to resist attack, all possible keys must be equally probable. If some
  290. keys are more likely to be used than others, then an attacker can use this
  291. information to reduce the work needed to break the cipher.
  292.  
  293. Essentially, the key must be random. However, a passphrase generally needs
  294. to be easy to remember, so it has significantly less randomness than its
  295. length suggests. For example, a 20-letter English phrase, rather than having
  296. 20 x 8 = 160 bits of randomness, only has about 20 x 2 = 40 bits of randomness.
  297.  
  298. So, most cryptographic software will convert a passphrase into a key through
  299. a process called ``hashing'' or ``key initialization.'' Avoid cryptosystems
  300. that skip this phase by using a password directly as a key.
  301.  
  302. Avoid anything that doesn't let you generate your own keys (e.g., the vendor
  303. sends you keys in the mail, or keys are embedded in the copy of the software
  304. you buy).
  305.  
  306. Implementation Environment
  307.  
  308. Other factors that can influence the relative security of a product are
  309. related to its environment. For example, in software-based encryption
  310. packages, is there any plaintext that's written to disk (perhaps in
  311. temporary files)? What about operating systems that have the ability to swap
  312. processes out of memory on to disk? When something to be encrypted has its
  313. plaintext counterpart deleted, is the extent of its deletion a standard
  314. removal of its name from the directory contents, or has it been written
  315. over? If it's been written over, how well has it been written over? Is that
  316. level of security an issue for you? Are you storing cryptographic keys on a
  317. multi-user machine? The likelihood of having your keys illicitly accessed is
  318. much higher, if so. It's important to consider such things when trying to
  319. decide how secure something you implement is (or isn't) going to be.
  320.  
  321. Snake Oil Warning Signs
  322.  
  323. ``Trust Us, We Know What We're Doing''
  324.  
  325. Perhaps the biggest warning sign of all is the ``trust us, we know what
  326. we're doing'' message that's either stated directly or implied by the
  327. vendor. If the vendor is concerned about the security of their system after
  328. describing exactly how it works, it is certainly worthless. Regardless of
  329. whether or not they tell, smart people will be able to figure it out. The
  330. bad guys after your secrets (especially if you are an especially attractive
  331. target, such as a large company, bank, etc.) are not stupid. They will
  332. figure out the flaws. If the vendor won't tell you exactly and clearly
  333. what's going on inside, you can be sure that they're hiding something, and
  334. that the only one to suffer as a result will be you, the customer.
  335.  
  336. Technobabble
  337.  
  338. If the vendor's description appears to be confusing nonsense, it may very
  339. well be so, even to an expert in the field. One sign of technobabble is a
  340. description which uses newly invented terms or trademarked terms without
  341. actually explaining how the system works. Technobabble is a good way to
  342. confuse a potential user and to mask the vendor's own lack of expertise.
  343.  
  344. And consider this: if the marketing material isn't clear, why expect the
  345. instruction manual to be any better? Even the best product can be useless if
  346. it isn't applied properly. If you can't understand what a vendor is saying,
  347. you're probably better off finding something that makes more sense.
  348.  
  349. Secret Algorithms
  350.  
  351. Avoid software which uses secret algorithms. This is not considered a safe
  352. means of protecting data. If the vendor isn't confident that its encryption
  353. method can withstand scrutiny, then you should be wary of trusting it.
  354.  
  355. A common excuse for not disclosing an algorithm is that ``hackers might try
  356. to crack the program's security.'' While this may be a valid concern, it
  357. should be noted that such ``hackers'' can reverse-engineer the program to
  358. see how it works anyway. This is not a problem if the algorithm is strong
  359. and the program is implemented properly.
  360.  
  361. Using a well-known trusted algorithm, providing technical notes explaining
  362. the implementation, and making the source code available are signs that a
  363. vendor is confident about its product's security. You can take the
  364. implementation apart and test it yourself. Even if the algorithm is good, a
  365. poor implementation will render a cryptography product completely useless.
  366. However, a lock that attackers can't break even when they can see its
  367. internal mechanisms is a strong lock indeed. Good cryptography is exactly
  368. this kind of lock.
  369.  
  370. Note that a vendor who specializes in cryptography may have a proprietary
  371. algorithm which they will reveal only under a non-disclosure agreement. The
  372. crypto product may be perfectly adequate if the vendor is reputable. (But
  373. how does a non-expert know if a vendor is reputable in cryptography?) In
  374. general, you're best off avoiding secret algorithms.
  375.  
  376. Revolutionary Breakthroughs
  377.  
  378. Beware of any vendor who claims to have invented a ``new type of
  379. cryptography'' or a ``revolutionary breakthrough.'' True breakthroughs are
  380. likely to show up in research literature, and professionals in the field
  381. typically won't trust them until after years of analysis, when they're not
  382. so new anymore.
  383.  
  384. The strength of any encryption scheme is only proven by the test of time.
  385. New crypto is like new pharmaceuticals, not new cars. And in some ways it's
  386. worse: if a pharmaceutical company produces bogus drugs, people will start
  387. getting sick, but if you're using bogus crypto, you probably won't have any
  388. indication that your secrets aren't as secret as you think.
  389.  
  390. Avoid software which claims to use `new paradigms' of computing such as
  391. cellular automata, neural nets, genetic algorithms, chaos theory, etc. Just
  392. because software uses a different method of computation doesn't make it more
  393. secure. (In fact, these techniques are the subject of ongoing cryptographic
  394. research, and nobody has published successful results based on their use
  395. yet.)
  396.  
  397. Also be careful of specially modified versions of well-known algorithms.
  398. This may intentionally or unintentionally weaken the cipher.
  399.  
  400. It's important to understand the difference between a new cipher and a new
  401. product. Engaging in the practice of developing ciphers and cryptographic
  402. products is a fine thing to do. However, to do both at the same time is
  403. foolish. Many snake oil vendors brag about how they do this, despite the
  404. lack of wisdom in such activity.
  405.  
  406. Experienced Security Experts, Rave Reviews, and Other Useless Certificates
  407.  
  408. Beware of any product that claims it was analyzed by ``experienced security
  409. experts'' without providing references. Always look for the bibliography.
  410. Any cipher that they're using should appear in a number of scholarly
  411. references. If not, it's obviously not been tested well enough to prove or
  412. disprove its security.
  413.  
  414. Don't rely on reviews in newspapers, magazines, or television shows, since
  415. they generally don't have cryptographers to analyze software for them.
  416. (Celebrity ``hackers'' who know telephone systems are not necessarily crypto
  417. experts.)
  418.  
  419. Just because a vendor is a well known company or the algorithm is patented
  420. doesn't make it secure either.
  421.  
  422. Unbreakability
  423.  
  424. Some vendors will claim their software is ``unbreakable.'' This is marketing
  425. hype, and a common sign of snake oil. No algorithm is unbreakable. Even the
  426. best algorithms are susceptible to brute-force attacks, though this can be
  427. impractical if the key is large enough.
  428.  
  429. Some companies that claim unbreakability actually have serious reasons for
  430. saying so. Unfortunately, these reasons generally depend on some narrow
  431. definition of what it means to ``break'' security. For example, one-time
  432. pads (see the next section) are technically unbreakable as far as secrecy
  433. goes, but only if several difficult and important conditions are true. Even
  434. then, they are trivially vulnerable to known plaintext attacks on the
  435. message's integrity. Other systems may be unbreakable only if one of the
  436. communicating devices (such as a laptop) isn't stolen. So be sure to find
  437. out exactly what the ``unbreakable'' properties of the system are, and see
  438. if the more breakable parts of the system also provide adequate security.
  439.  
  440. Often, less-experienced vendor representatives will roll their eyes and say,
  441. ``Of course it's not unbreakable if you do such-and-such.'' The point is
  442. that the exact nature of ``such and such'' will vary from one product to
  443. another. Pick the one that best matches your operational needs without
  444. sacraficing your security requirements.
  445.  
  446. One-Time-Pads
  447.  
  448. A vendor might claim the system uses a one-time-pad (OTP), which is provably
  449. unbreakable. Technically, the encrypted output of an OTP system is equally
  450. likely to decrypt to any same-size plaintext. For example,
  451.  
  452.   598v *$_+~ xCtMB0
  453.  
  454. has an equal chance of decrypting to any of these:
  455.  
  456.   the answer is yes
  457.   the answer is no!
  458.   you are a weenie!
  459.  
  460. Snake oil vendors will try to capitalize on the known strength of an OTP.
  461. But it is important to understand that any variation in the implementation
  462. means that it is not an OTP and has nowhere near the security of an OTP.
  463.  
  464. An OTP system works by having a ``pad'' of random bits in the possession of
  465. both the sender and recipient, but absolutely no one else. Originally, paper
  466. pads were used before general-purpose computers came into being. The pad
  467. must be sent from one party to the other securely, such as in a locked
  468. briefcase handcuffed to the carrier.
  469.  
  470. To encrypt an n -bit message, the next n bits in the pad are used as a key.
  471. After the bits are used from the pad, they're destroyed, and can never be
  472. used again.
  473.  
  474. The bits in the pad cannot be generated by an algorithm or cipher. They must
  475. be truly random, using a real random source such as specialized hardware,
  476. radioactive decay timings, etc. Some snake oil vendors will try to dance
  477. around this issue, and talk about functions they perform on the bit stream,
  478. things they do with the bit stream vs. the plaintext, or something similar.
  479. But this still doesn't change the fact that anything that doesn't use real
  480. random bits is not an OTP. The important part of an OTP is the source of the
  481. bits, not what one does with them.
  482.  
  483. OTPs are seriously vulnerable if you ever reuse a pad. For instance, the
  484. NSA's VENONA project [4], without the benefit of computer assistance,
  485. managed to decrypt a series of KGB messages encrypted with faulty pads. It
  486. doesn't take much work to crack a reused pad.
  487.  
  488. The real limitation to practical use of OTPs is the generation and
  489. distribution of truly random keys. You have to distribute at least one bit
  490. of key for every bit of data transmitted. So OTPs are awkward for general
  491. purpose cryptography. They're only practical for extremely-low-bandwidth
  492. communication channels where two parties can exchange pads with a method
  493. different than they exchange messages. (It is rumored that a link from
  494. Washington, D.C., to Moscow was encrypted with an OTP.)
  495.  
  496. Further, if pads are provided by a vendor, you cannot verify the quality of
  497. the pads. How do you know the vendor isn't sending the same bits to
  498. everyone? Keeping a copy for themselves? Or selling a copy to your rivals?
  499.  
  500. Also, some vendors may try to confuse random session keys or initialization
  501. vectors with OTPs.
  502.  
  503. Algorithm or product X is insecure
  504.  
  505. Be wary of anything that claims that competing algorithms or products are
  506. insecure without providing evidence for these claims. Sometimes attacks are
  507. theoretical or impractical, requiring special circumstances or massive
  508. computing power over many years, and it's easy to confuse a layman by
  509. mentioning these.
  510.  
  511. Recoverable Keys
  512.  
  513. If there is a key-backup or key-escrow system, are you in control of the
  514. backup or does someone else hold a copy of the key? Can a third party
  515. recover your key without much trouble? Remember, you have no security
  516. against someone who has your key.
  517.  
  518. If the vendor claims it can recover lost keys without using some type of
  519. key-escrow service, avoid it. The security is obviously flawed.
  520.  
  521. Exportable from the USA
  522.  
  523. If the software is made in the USA, can it be exported? Strong cryptography
  524. is considered dangerous munitions by the United States and requires approval
  525. from the US Bureau of Export Administration, under the US Department of
  526. Commerce, before it can leave the country. Various interested government
  527. agencies serve as consultants to the Bureau of Export Administration when
  528. evaluating such requests. (The U.S. isn't alone in this; some other nations
  529. have similar export restrictions on strong cryptography.) Chances are, if
  530. the software has been approved for export, the algorithm is weak or
  531. crackable.
  532.  
  533. If the vendor is unaware of export restrictions, avoid their software. For
  534. example, if they claim that the IDEA cipher can be exported when most
  535. vendors (and the US Government!) do not make such a claim, then the vendor
  536. is probably lacking sufficient clue to provide you with good cryptography.
  537.  
  538. Because of export restrictions, some decent crypto products come in two
  539. flavors: US-only and exportable. The exportable version will be crippled,
  540. probably by using smaller keys, making it easy to crack.
  541.  
  542. There are no restrictions on importing crypto products into the US, so a
  543. non-US vendor can legally offer a single, secure version of a product for
  544. the entire world.
  545.  
  546. Note that a cryptosystem may not be exportable from the US even if it is
  547. available outside the US: sometimes a utility is illegally exported and
  548. posted on an overseas site.
  549.  
  550. ``Military Grade''
  551.  
  552. Many crypto vendors claim their system is ``military grade.'' This is a
  553. meaningless term, since there isn't a standard that defines ``military
  554. grade,'' other than actually being used by various armed forces. Since these
  555. organizations don't reveal what crypto they use, it isn't possible to prove
  556. or disprove that something is ``military grade.''
  557.  
  558. Unfortunately, some good crypto products also use this term. Watch for this
  559. in combination with other snake oil indicators, e.g., ``our military-grade
  560. encryption system is exportable from the US!''
  561.  
  562. Other Considerations
  563.  
  564. Avoid vendors who don't seem to understand anything described in the ``Basic
  565. Concepts'' section above.
  566.  
  567. Avoid anything that allows someone with your copy of the software to access
  568. files, data, etc. without needing some sort of key or passphrase.
  569.  
  570. Beware of products that are designed for a specific task, such as data
  571. archiving, and have encryption as an additional feature. Typically, it's
  572. better to use an encryption utility for encryption, rather than some tool
  573. designed for another purpose that adds encryption as an afterthought.
  574.  
  575. No product is secure if used improperly. You can be the weakest link in the
  576. chain if you use a product carelessly. Do not trust any product to be
  577. foolproof, and be wary of any product that claims it is.
  578.  
  579. Interface isn't everything: user-friendliness is important, but be wary of
  580. anything that puts too much emphasis on ease of use without due
  581. consideration to cryptographic strength.
  582.  
  583. Glossary
  584.  
  585. algorithm
  586.      A procedure or mathematical formula. Cryptographic algorithms convert
  587.      plaintext to and from ciphertext.
  588. cipher
  589.      Synonym for ``cryptographic algorithm''
  590. cryptanalysis
  591.      To solve or ``break'' a cryptosystem.
  592. EAR
  593.      Export Administration Regulations. The rules under which the export of
  594.      cryptographic software from the US are governed now.
  595. escrow
  596.      A third party able to decrypt messages sent from one person to another.
  597.      Although this term is often used in connection with the US Government's
  598.      ``Clipper'' proposals, it isn't limited to government-mandated ability
  599.      to access encrypted information at will. Some corporations might wish
  600.      to have their employees use cryptosystems with escrow features when
  601.      conducting the company's business, so the information can be retrieved
  602.      should the employee be unable to unlock it himself later, (if he were
  603.      to forget his passphrase, suddenly quit, get run over by a bus, etc.)
  604.      Or, someone might wish his spouse or lawyer to be able to recover
  605.      encrypted data, etc., in which case he could use a cryptosystem with an
  606.      escrow feature.
  607. initialization vector
  608.      One of the problems with encrypting such things as files in specific
  609.      formats (i.e., that of a word processor, email, etc.) is that there is
  610.      a high degree of predictability about the first bytes of the message.
  611.      This could be used to break the encrypted message easier than by brute
  612.      force. In ciphers where one block of data is used to influence the
  613.      ciphertext of the next (such as CBC), a random block of data is
  614.      encrypted and used as the first block of the encrypted message,
  615.      resulting in a less predictable ciphertext message. This random block
  616.      is known as the initialization vector. The decryption process also
  617.      performs the function of removing the first block, resulting in the
  618.      original plaintext.
  619. ITAR
  620.      International Traffic in Arms Regulations. These are the rules by which
  621.      munitions, as defined by the US State Department, may (or may not) be
  622.      exported from the US. Until recently, this also included the export of
  623.      cryptography. The exportability of cryptography is now in the hands of
  624.      the Bureau of Export Administration, under the US Department of
  625.      Commerce.
  626. key
  627.      A piece of data that, when fed to an algorithm along with ciphertext,
  628.      will yield plaintext. (Or, when fed to an algorithm along with
  629.      plaintext, will yield ciphertext.
  630. random session key
  631.      This is a temporary key that is generated specifically for one message.
  632.      Typically, in public key cryptosystems, the message to be sent is
  633.      encrypted with a symmetric key that was specifically generated for that
  634.      message. The encrypted version of that message, as well as the
  635.      associated session key can then be encrypted with the recipient's
  636.      public key. When the recipient decrypts the message, then, the system
  637.      will actually decrypt the message it gets (which is the ciphertext
  638.      message and the symmetric key to decrypt it), and then use the
  639.      symmetric key to decrypt the ciphertext. The result is the plaintext
  640.      message. This is often done because of the tremendous difference in the
  641.      speed of symmetric vs. asymmetric ciphers.
  642.  
  643. Index
  644.  
  645. References
  646.  
  647. 1    B. Schneier. Applied Cryptography , 2e. John Wiley & Sons. 1996.
  648.  
  649. 2    M. Blaze, W. Diffie, R. L. Rivest, B. Schneier, T. Shimomura, E.
  650.      Thompson, M. Wiener. ``Minimal Key Lengths for Symmetric Ciphers to
  651.      Provide Adequate Commercial Security''. Available at
  652.      ftp://ftp.research.att.com/dist/mab/keylength.ps and
  653.      http://theory.lcs.mit.edu/~rivest/bsa-final-report.ascii
  654.  
  655. 3    The Crypt Cabal. Cryptography FAQ . Available at
  656.      http://www.cis.ohio-state.edu/hypertext/faq/usenet/cryptography-faq/top.html.
  657.  
  658. 4    The National Security Agency. The VENONA Project . Available at
  659.      http://www.nsa.gov/docs/venona/venona.html.
  660.  
  661. 5    RSA Data Security, Inc. 1997 Secret Key Challenge. Available at
  662.      http://www.rsa.com/rsalabs/97challenge/.
  663.  
  664. -- 
  665. Matt Curtin cmcurtin@interhack.net http://www.interhack.net/people/cmcurtin/
  666.